package main

import (
	"fmt"
	"sync"
	"time"
)

// 共享的资源

var (
	sum   int
	mutex sync.Mutex
)

func main() {
	//开启100个协程让sum+10
	for i := 0; i < 100; i++ {
		//mutex.Lock()
		go add(10)
		//mutex.Unlock()
	}

	//防止提前退出
	time.Sleep(2 * time.Second)
	fmt.Println("sum:", sum)
}

// 此处加锁
func add(i int) {
	mutex.Lock()
	defer mutex.Unlock()
	sum = sum + i
}

// 结果 990 、1000 所以此处的并发不是安全的
